{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第四周基础作业\n",
    "**1. 对连续型特征，可以用哪个函数可视化其分布？（给出你最常用的一个即可），并根据代码运行结果给出示例。**\n",
    "<br>matplotlib\n",
    "<br>seaborn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**2. 对两个连续型特征，可以用哪个函数得到这两个特征之间的相关性？根据代码运行结果，给出示例。**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**3. 如果发现特征之间有较强的相关性，在选择线性回归模型时应该采取什么措施。**\n",
    "<br>\n",
    "<br>1.特征之间高度相关，可考虑进行PCA降维（特征层面）或加正则项（模型层面）\n",
    "<br>2.两个特征的相关性特别强，比如绝对值高于0.9，则可以考虑只保留其中一个特征以达到降维的目的。\n",
    "<br>3.在选用模型时加入L1正则项以在训练模型的时候自动淘汰一些特征。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**4. 当采用带正则的模型以及采用随机梯度下降优化算法时，需要对输入（连续型）特征进行去量纲预处理。课程代码给出了用标准化（StandardScaler）的结果，请改成最小最大缩放（MinMaxScaler）去量纲 ，并重新训练最小二乘线性回归、岭回归、和Lasso模型。**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**5. 代码中给出了岭回归（RidgeCV）和Lasso（LassoCV）超参数（alpha_）调优的过程，请结合两个最佳模型以及最小二乘线性回归模型的结果，给出什么场合应该用岭回归，什么场合用Lasso，什么场合用最小二乘。**\n",
    "<br>\n",
    "<br>1.最小二乘：适用与特征之间相关性不强的数据\n",
    "<br>2.岭回归： 适用与特征之间有一些相关性的数据\n",
    "<br>3.Lasso回归： 适用与特征之前有很多强相关性的数据\n",
    "<br>4.最小二乘线性回归中，目标函数只考虑了模型对训练样本的拟合程度，容易过拟合。​岭回归使得线性回归系数收缩，模型稳定。当输入特征之间存在共线性时使用较好。 ​lasso也会收缩回归系数。当正则参数取合适值时，使得有些线性回归系数为0，得到稀疏模型。 当输入特征多，有些特征与目标变量之间相关性很弱时，可能只选择强相关的特征，模型解释性好。 通过模型结果来看，不同模型中各个变量的比重不同。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
